package com.room.search.service.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;
import javax.validation.constraints.*;

/**
 * A DTO for the {@link com.room.search.domain.RoomUserBrokerChantMessage} entity.
 */
@ApiModel(description = "在线咨询聊天记录")
public class RoomUserBrokerChantMessageDTO implements Serializable {

    private Long id;

    /**
     * 聊天内容
     */
    @ApiModelProperty(value = "聊天内容")
    private String message;

    /**
     * 接收状态
     */
    @Max(value = 1)
    @ApiModelProperty(value = "接收状态")
    private Integer status;

    /**
     * 消息类型
     */
    @Size(max = 32)
    @ApiModelProperty(value = "消息类型")
    private String messageType;

    /**
     * 消息发送者
     */
    @ApiModelProperty(value = "消息发送者")
    private Long sendId;

    /**
     * 消息接收者
     */
    @ApiModelProperty(value = "消息接收者")
    private Long receiveId;

    /**
     * 创建者
     */
    @Size(max = 32)
    @ApiModelProperty(value = "创建者")
    private String createdBy;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Instant createdDate;

    /**
     * 最后修改者
     */
    @Size(max = 32)
    @ApiModelProperty(value = "最后修改者")
    private String lastModifiedBy;

    /**
     * 最后修改时间
     */
    @ApiModelProperty(value = "最后修改时间")
    private Instant lastModifiedDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getMessageType() {
        return messageType;
    }

    public void setMessageType(String messageType) {
        this.messageType = messageType;
    }

    public Long getSendId() {
        return sendId;
    }

    public void setSendId(Long sendId) {
        this.sendId = sendId;
    }

    public Long getReceiveId() {
        return receiveId;
    }

    public void setReceiveId(Long receiveId) {
        this.receiveId = receiveId;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Instant getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Instant createdDate) {
        this.createdDate = createdDate;
    }

    public String getLastModifiedBy() {
        return lastModifiedBy;
    }

    public void setLastModifiedBy(String lastModifiedBy) {
        this.lastModifiedBy = lastModifiedBy;
    }

    public Instant getLastModifiedDate() {
        return lastModifiedDate;
    }

    public void setLastModifiedDate(Instant lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof RoomUserBrokerChantMessageDTO)) {
            return false;
        }

        RoomUserBrokerChantMessageDTO roomUserBrokerChantMessageDTO = (RoomUserBrokerChantMessageDTO) o;
        if (this.id == null) {
            return false;
        }
        return Objects.equals(this.id, roomUserBrokerChantMessageDTO.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.id);
    }

    // prettier-ignore
    @Override
    public String toString() {
        return "RoomUserBrokerChantMessageDTO{" +
            "id=" + getId() +
            ", message='" + getMessage() + "'" +
            ", status=" + getStatus() +
            ", messageType='" + getMessageType() + "'" +
            ", sendId=" + getSendId() +
            ", receiveId=" + getReceiveId() +
            ", createdBy='" + getCreatedBy() + "'" +
            ", createdDate='" + getCreatedDate() + "'" +
            ", lastModifiedBy='" + getLastModifiedBy() + "'" +
            ", lastModifiedDate='" + getLastModifiedDate() + "'" +
            "}";
    }
}
